home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Tools / Languages / MacMETH 3.2.1 / MacMETH Manual 1992 / Manual Examples / MenuExample.MOD < prev    next >
Encoding:
Text File  |  1992-10-09  |  1.8 KB  |  59 lines  |  [TEXT/MEDT]

  1. MODULE MenuExample; (* displays a small menu and responds to the user's actions *)
  2.  
  3.     FROM    Menu    IMPORT     MenuRes, SetMenu, GetMenuCmd, DisableMenu, EnableMenu,
  4.                             SetItem, DisableItem, EnableItem, InstallAboutProc,
  5.                 MarkItem;
  6.     FROM    InOut     IMPORT    WriteString, WriteLn;
  7.         
  8.     VAR    MenuEnabled, ItemEnabled, Checked, Done    : BOOLEAN;
  9.             Command        : MenuRes;
  10.         
  11.     PROCEDURE AboutThisProgram;
  12.     BEGIN
  13.         WriteLn;
  14.         WriteString("*******************************");WriteLn;WriteLn;
  15.         WriteString("  HELLO !"); WriteLn;
  16.         WriteString('  This is an example program for module "Menu".');
  17.         WriteString("*******************************");WriteLn;
  18.     END AboutThisProgram;
  19.         
  20. BEGIN (* MenuExample *)
  21.     InstallAboutProc("About MenuExample",AboutThisProgram);
  22.     SetMenu(1,"Example|Disable menu 2|Quit/Q");
  23.     SetMenu(2,"Menu 2|Enable  item below|(-|(Just for fun");
  24.     MenuEnabled := TRUE; ItemEnabled := FALSE; Checked := FALSE;
  25.     LOOP
  26.         GetMenuCmd(Command,Done);
  27.         IF Done THEN
  28.             IF Command.menuID = 1 THEN
  29.                 CASE Command.menuCmd OF
  30.                    1 :    IF MenuEnabled THEN
  31.                         DisableMenu(2);
  32.                         SetItem(1,1,"Enable  menu 2");
  33.                     ELSE
  34.                         EnableMenu(2);
  35.                         SetItem(1,1,"Disable menu 2");
  36.                     END (* IF *);
  37.                     MenuEnabled := ~MenuEnabled;
  38.                   |2 : EXIT
  39.                 END (* CASE *);
  40.             ELSE  (* Command.menuID = 2 *)
  41.                 CASE Command.menuCmd OF
  42.                    1 :    IF ItemEnabled THEN
  43.                         DisableItem(2,3);
  44.                         SetItem(2,1,"Enable  item below");
  45.                     ELSE
  46.                         EnableItem(2,3);
  47.                         SetItem(2,1,"Disable item below");
  48.                     END (* IF *);
  49.                     ItemEnabled := ~ItemEnabled;
  50.                   |2 : (* Is not possible because item #2 is always disabled! *)
  51.                   |3 : Checked := ~Checked;
  52.                     MarkItem(2,3,Checked);
  53.                 END (* CASE *);
  54.             END (* IF Command.menuID *);
  55.         END (* IF Done *);
  56.     END (* LOOP *);
  57. END MenuExample.
  58.  
  59.